In many industries, from industrial product design to 3D animation, computer-aided design (CAD) applications, computer-aided engineering (CAE) applications, computer-aided manufacturing (CAM) applications, or others are used for creating, manipulating, displaying, or analyzing two- and three-dimensional models of objects. These applications, referred to generally as CAD applications, allow a user to input and view a design for a particular structure in the form of an object. The user can often rotate the view of the object to any angle, and also zoom in or zoom out for different views and perspectives. Additional visual features such as highlighting, shading, cross-hatching, coloring, texturing, and others enable the user to design an object with the aid of a computing device. In some versions of CAD applications, known as parametric or history-based CAD, the application can also keep track of and monitor design changes to the object in addition to design dependencies. Accordingly, when the user adds or changes an element within the object, other values that depend on that change may be automatically updated in accordance with engineering concepts and rules of design. For example, a length of a first object may be defined by a formula that includes, as a variable, a length of a second object. Accordingly, modifying the length of the second object may cause the CAD application to recalculate the length of the first object and regenerate the model.
Many different applications are used for different functions, frequently by different users with a manufacturing or design group. For example, a product designer may use a parametric modeling CAD application to create or edit a model, a standards certification engineer may use an engineering analysis application to determine if a product built from the model will comply with engineering requirements such as weight or strength, a sales representative may use a configuration building application to specify product options for a customer, and a project manager may use a visualization application to view and annotate the model. However, these applications typically have different data models, requiring time-consuming importing and exporting as the model is passed around from user to user. Additionally, during translation from one data model to another, information may be lost.